High-Efficiency Video Coding (HEVC) is a new international video coding standard developed by the Joint Collaborative Team on Video Coding (JCT-VC). HEVC is based on the hybrid block-based motion-compensated DCT-like transform coding architecture. The basic unit for compression, termed coding unit (CU), is a 2N×2N square block. A CU may begin with a largest CU (LCU), which is also referred as coded tree unit (CTU) in HEVC and each CU can be recursively split into four smaller CUs until the predefined minimum size is reached. Once the splitting of CU hierarchical tree is done, each CU is further split into one or more prediction units (PUs) according to prediction type and PU partition.
To achieve the best coding efficiency of hybrid coding architecture in HEVC, a prediction mode is adaptively determined for each PU to select either Intra prediction or Inter prediction. For Intra prediction modes, the spatial neighboring reconstructed pixels can be used to generate the directional predictions. There are up to 35 directions in HEVC. For Inter prediction modes, the temporal reconstructed reference frames can be used to generate motion compensated predictions. There are three different Inter modes, including Skip, Merge and Inter Advanced Motion Vector Prediction (AMVP) modes.
When a PU is coded in Inter AMVP mode, motion-compensated prediction is performed using transmitted motion vector differences (MVDs) that can be used together with Motion Vector Predictors (MVPs) to derive motion vectors (MVs). To decide MVP in Inter AMVP mode, the advanced motion vector prediction (AMVP) scheme is used to select a motion vector predictor among an AMVP candidate set including two spatial MVPs and one temporal MVP. In AMVP mode, MVP index for the MVP and the corresponding MVDs are required to be encoded and transmitted. In addition, the Inter prediction direction to specify the prediction directions among bi-prediction and uni-prediction (i.e., list 0 (L0) or list 1 (L1)) is encoded and transmitted. Furthermore, the reference frame index for each list is also encoded and transmitted.
When a PU is coded in either Skip or Merge mode, no motion information is transmitted except the Merge index of the selected candidate. In the Skip and Merge modes, the MVD is zero and there is no need to transmit MVD. Accordingly, the decoded MV is recovered using motion inference methods (i.e., MV=MVP) since the MVD is equal to zero. The MVP may correspond to a spatially neighboring blocks (spatial candidates) or a temporal block (temporal candidate) located in a co-located picture. According to HEVC, the co-located picture is the first reference picture in list 0 or list 1 as signaled in the slice header. In the case of a Skip PU, the residual signal is also omitted. To determine the Merge index for the Skip and Merge modes, the Merge scheme is used to select a motion vector predictor among a Merge candidate set containing four spatial MVPs and one temporal MVP.
FIG. 1 shows the neighboring PUs referred to derive the spatial and temporal MVPs for both AMVP and Merge scheme. In AMVP, the spatial MVPs include a left MVP and a top MVP. The left MVP is the first available one from neighboring blocks blocks A0 and A1, and the top MVP is the first available one from neighboring blocks block B0, B1 and B2. On the other hand, the temporal MVP is the first available MV from co-located reference block TBR or TCTR, where TBR is used first and if TBR is not available, TCTR is used instead. If the left MVP is not available and the top MVP is a non-scaled MVP, a second top MVP can be derived if there is a scaled MVP among B0, B1, and B2. The list size of MVPs of AMVP is 2 in HEVC. Therefore, after the derivation process of the two spatial MVPs and one temporal MVP, only the first two MVPs can be included in the MVP list. After removing redundancy, if the number of available MVPs is less than two, zero vector candidate(s) is added to the candidates list.
For Skip and Merge modes, up to four spatial Merge indices are derived from A0, A1, B0 and B1, and one temporal Merge index is derived from TBR or TCTR as shown in FIG. 1. Note that if any of the four spatial Merge indices is not available, the position B2 is then used as a substitute position to derive Merge index. After the derivation process of the four spatial Merge indices and one temporal Merge index, removing redundancy is applied to remove any redundant Merge index. After removing redundancy, if the number of available Merge indices is smaller than five, three types of additional candidates can be derived and added to the candidates list.
Additional bi-predictive Merge candidates are derived based on original Merge candidates. The additional candidates are classified into three candidate types:                1. Combined bi-predictive Merge candidate (candidate type 1)        2. Scaled bi-predictive Merge candidate (candidate type 2)        3. Zero vector Merge/AMVP candidate (candidate type 3).        
In candidate type 1, combined bi-predictive Merge candidates are created by combining original Merge candidate. In particular, two original candidates, which have mvL0 (i.e., the motion vector in list 0) with refIdxL0 (i.e., the reference picture index in list 0) and mvL1 (i.e., the motion vector in list 1) with refIdxL1 (i.e., the reference picture index in list 1) respectively, are used to created bi-predictive Merge candidates. An example of the derivation process of combined bi-predictive Merge candidate is shown in FIG. 2A and FIG. 2B, where mvL0_A and mvL1_B are two uni-predictive Merge candidates. FIG. 2A illustrates an original Merge candidate list (210) and the Merge candidate list after adding a combined candidate (220), where the added Merge candidates are highlighted by dotted background. Also, Merge index 0 is assigned to uni-predictive Merge candidate, mvL0_A, Merge index 1 is assigned to uni-predictive Merge candidate, mvL1_B and Merge index 2 is assigned to the added bi-predictive Merge candidate, (mvL0_A, mvL1_B). Candidate mvL0_A points to reference picture ref0 in reference list L0 and candidate mvL1_B points to reference picture ref0 in reference list L1 as shown in FIG. 2B. The two uni-predictive Merge candidates are combined into one bi-predictive Merge candidate (230) as shown in FIG. 2B.
In candidate type 2, scaled bi-predictive Merge candidates are created by scaling original Merge candidate. In particular, the original candidate, which has motion vector, mvLX (i.e., the motion vector in list X) and associated reference picture refIdxLX (i.e., the reference picture index in list X), is used to generate bi-predictive Merge candidates, where X is equal to 0 or 1. For example, candidate A may have uni-predictive motion vector mvL0_A associated with reference picture ref0 in list 0. The reference index ref0 is firstly copied to reference index ref0′ in list 1. A scaled motion vector mvL0′_B is calculated by scaling mvL0_A with respect to ref0 and ref0′ according to distance of picture order count (POC). Bi-predictive Merge candidate is generated from mvL0_A with ref0 in list 0 and mvL0′_B with ref0′ in list 1. The generated scaled bi-predictive Merge candidate is added into Merge candidate list. An example of the derivation process of scaled bi-predictive Merge candidate is shown in FIG. 3A and FIG. 3B, where mvL0_A and mvL1_B are two uni-predictive Merge candidates. FIG. 3A illustrates an original Merge candidate list (310) and the Merge candidate list after adding scaled candidates (320), where the added Merge candidates are highlighted by dotted background. Merge index 2 is assigned to scaled bi-predictive Merge candidate, ((mvL0_A, ref0), (mvL0′_B,ref0′)). Merge index 3 is assigned to scaled bi-predictive Merge candidate, ((mvL1′_A, ref1′), (mvL1_B,ref1)). The two scaled bi-predictive Merge candidates are shown in FIG. 3B.
In candidate type 3, zero vector Merge/AMVP candidates are created by combining zero vectors and reference index that can be referred. FIG. 4A shows an example of adding zero-valued Merge candidates to the original Merge candidate list (410) to form a filled Merge candidate list (420). FIG. 4B shows an example of adding zero-valued AMVP candidates to original AMVP candidate lists (430) to form filled AMVP candidate lists (440). If zero-valued candidates are not duplicated, it is added to Merge/AMVP candidate set.
As mentioned above, bi-prediction can be derived from uni-prediction motion vector(s) by combining the uni-prediction motion vectors or scaling the uni-prediction motion vector(s). It is desirable to further improve the coding efficiency for the case of uni-prediction.